<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>

    // let result = 10 + false + undefined + [] + '北京珠峰培训' + null + true + {};
    // console.log(result);
    // NaN + [] --->NaN + '' -->'NaN' + '北京珠峰培训'--> 'NaN北京珠峰培训'  + null --> 'NaN北京珠峰培训null' + true -->'NaN北京珠峰培训nulltrue' + {} -->'NaN北京珠峰培训nulltrue' + '[object Object]' -->'NaN北京珠峰培训nulltrue[object Object]'

    // 在拼接的时候如果拼接的基本值不会进行数据类型的转换，直接拼接，如果是引用值，转成字符串在拼接

    // 'NaN北京珠峰培训nulltrue[object Object]'

    //-----------------------------------------------
    // let res = parseFloat('left:200px'); // NaN
    // // NaN和谁都不相等包括自己
    // // NaN虽然不是一个有效数字但是是Number类型的

    // if (res === 200) {
    //   alert(200);
    // } else if (res === NaN) {
    //   alert(NaN);
    // } else if (typeof res === 'number') {
    //   alert('number');
    // } else {
    //   alert('Invalid Number');
    // }

    //-----------------------------

    /* 
    a = 10 un
    b = 20 13
    func = af0
     */
    // var a = 10,
    //   b = 20; // var a = 10; var b = 20;
    // function func() { // af0
    //   /* 
    //   a = 13
    //    */
    //   console.log(a, b); // un 20
    //   var a = b = 13; // var a = 13; b = 13;
    //   console.log(a, b); // 13 13
    // }
    // a = func(); // 如果你的函数没有返回值就是unedfined赋值给a
    // console.log(a, b); // un 13

    //-----------------------------------------------------------------------------------
    /* 
    x = 4 3 2 1
    func = af0
    f = af1
     */
    var x = 4;
    function func() { // af0
      /* 
      
       */
      return function (y) { // af1
        /* 
        y = 6
        y = 9
         */
        console.log(y + (--x)); // 6 + 3
        //   9 + 1
      }
    }
    var f = func(5);
    f(6); // 9
    func(7)(8); // af2(8)  10
    f(9); // 10
    console.log(x); // 1




    // function func() { // af0
    //   /* 
      
    //    */
    //   return function (y) { // af2
    //     /* 
    //     y = 8
    //      */
    //     console.log(y + (--x)); // 8 + 2
    //   }
    // }

  </script>
</body>

</html>